#pragma once
#include "stdafx.h"

/*--------------------------------------------------------------------------------
 * Adaptive Intelligence - Core Class Library
 * Version 2.00
 * 
 * Server Type Enumeration
 *		Lists the types of servers that may be enumerated on the network.
 *------------------------------------------------------------------------------*/

/*--------------------------------------------------------------------------------
 * System Imports
 *------------------------------------------------------------------------------*/
namespace Adaptive
{
	namespace Win32
	{
		/// <summary>
		/// Lists the types of servers that may be enumerated on the network.
		/// </summary>
		[Flags()]
		public enum class ServerType : unsigned int 
		{
			/// <summary>
			/// Indicates all workstations.
			/// </summary>
            Workstation = SV_TYPE_WORKSTATION,
			/// <summary>
			/// Indicates all computers that have the server service running
			/// </summary>
            Server = SV_TYPE_SERVER,
			/// <summary>
			/// Indicates all SQL Servers.
			/// </summary>
            SqlServer = SV_TYPE_SQLSERVER,
			/// <summary>
			/// Indicates primary domain controllers.
			/// </summary>
            DomainController = SV_TYPE_DOMAIN_CTRL,
			/// <summary>
			/// Indicates backup domain contrrollers.
			/// </summary>
            BackupDomainController = SV_TYPE_DOMAIN_BAKCTRL,
			/// <summary>
			/// Indicates servers running the Timesource service.
			/// </summary>
            TimeSource = SV_TYPE_TIME_SOURCE ,
			/// <summary>
			/// Indicates servers with the Apple File Protocol service.
			/// </summary>
            AppleFileProtocol = SV_TYPE_AFP,
			/// <summary>
			/// Indicates Novell servers.
			/// </summary>
            Novell = SV_TYPE_NOVELL,
			/// <summary>
			/// Indicates LAN Manager 2.x domain members.
			/// </summary>
            DomainMember = SV_TYPE_DOMAIN_MEMBER,
			/// <summary>
			/// Indicates servers sharing print queue.
			/// </summary>
            PrintQueueServer = SV_TYPE_PRINTQ_SERVER,
			/// <summary>
			/// Indicates server running dial-in service.
			/// </summary>
            DialupServer = SV_TYPE_DIALIN_SERVER,
			/// <summary>
			/// Indicates a Xenix server.
			/// </summary>
            XenixServer = SV_TYPE_XENIX_SERVER,
			/// <summary>
			/// Indicates a UNIX server.
			/// </summary>
            UnixServer = SV_TYPE_SERVER_UNIX,
			/// <summary>
			/// Indicates any Windows NT machine.
			/// </summary>
            WindowsNT = SV_TYPE_NT,
			/// <summary>
			/// Indicates any Windows for Workgroups machine.
			/// </summary>
            WindowsForWorkgroups = SV_TYPE_WFW,
			/// <summary>
			/// Indicates Microsoft File and Print servers for NetWare.
			/// </summary>
            MSFileAndPrintServer = SV_TYPE_SERVER_MFPN,
			/// <summary>
			/// Indicates server that is not a domain controller.
			/// </summary>
            WindowsNTServer = SV_TYPE_SERVER_NT,
			/// <summary>
			/// Indicates server that can run the browser service.
			/// </summary>
            ServerWithBrowser = SV_TYPE_POTENTIAL_BROWSER,
			/// <summary>
			/// Indicates server running a browser service as backup.
			/// </summary>
            ServerWithBackupBrowser = SV_TYPE_BACKUP_BROWSER,
			/// <summary>
			/// Indicates server running the master browser service.
			/// </summary>
            MasterBrowser = SV_TYPE_MASTER_BROWSER,
			/// <summary>
			/// Indicates server running the domain master browser.
			/// </summary>
            DomainMasterBrowser = SV_TYPE_DOMAIN_MASTER,
			/// <summary>
			/// Indicates OSF systems.
			/// </summary>
            Osf = SV_TYPE_SERVER_OSF,
			/// <summary>
			/// Indicates VMS servers.
			/// </summary>
            Vms = SV_TYPE_SERVER_VMS,
			/// <summary>
			/// Indicates any machine with Windows 95 or later.
			/// </summary>
            Windows = SV_TYPE_WINDOWS,
			/// <summary>
			/// Indicates directory/file servers.
			/// </summary>
            Dfs = SV_TYPE_DFS,
			/// <summary>
			/// Indicates server clusters available in the domain.
			/// </summary>
            NtCluster = SV_TYPE_CLUSTER_NT,
			/// <summary>
			/// Indicates Windows Terminal Servers.
			/// </summary>
            TerminalServer = SV_TYPE_TERMINALSERVER,
			/// <summary>
			/// Indicates cluster virtual servers available in the domain.
			/// </summary>
            NtClusterVirtual = SV_TYPE_CLUSTER_VS_NT,
			/// <summary>
			/// Indicates DEC systems.
			/// </summary>
            Dce = SV_TYPE_DCE,
			/// <summary>
			/// Indicates ??
			/// </summary>
            AlternateXPort = SV_TYPE_ALTERNATE_XPORT,
			/// <summary>
			/// Indicates servers maintained by the browser internally.
			/// </summary>
            ListOnlyLocalItems = SV_TYPE_LOCAL_LIST_ONLY,
			/// <summary>
			/// Indicates domain enumeration.
			/// </summary>
            PrimaryDomain = SV_TYPE_DOMAIN_ENUM,
			/// <summary>
			/// Indicates all items are to be enumerated.
			/// </summary>
            All = SV_TYPE_ALL
		};
	}
}